<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>浏览器对象模型-导航对象(Browser Object Model - Navigation Objects)</title>
  <!-- 
  在JavaScript的浏览器对象模型（BOM）中，navigator对象用于提供有关浏览器的信息和用户的环境。它包含了一些属性和方法，可以用来检测浏览器的类型、版本、操作系统等。
  1. navigator对象概述
  - navigator对象是window对象的一个属性，可以通过window.navigator访问。
  - 它提供了关于浏览器和操作系统的详细信息，通常用于浏览器检测和功能支持检测。

  2. navigator对象的属性
  以下是一些常用的navigator属性：
  - appName：返回浏览器的名称。通常返回的值是"Netscape"，但在现代浏览器中可能并不准确。
    console.log(navigator.appName); // 输出 "Netscape"
  - appVersion：返回浏览器的版本信息，包括浏览器的名称和版本号。
    console.log(navigator.appVersion); // 输出浏览器的版本信息
  - userAgent：返回一个包含浏览器、操作系统和设备信息的字符串。可以用于用户代理检测。
    console.log(navigator.userAgent); // 输出用户代理字符串
  - platform：返回浏览器运行的平台（操作系统）。例如，"Win32"、"Linux x86_64"等。
    console.log(navigator.platform); // 输出操作系统信息
  - language：返回浏览器的首选语言设置，例如"zh-CN"表示简体中文。
    console.log(navigator.language); // 输出浏览器的语言设置
  - onLine：返回一个布尔值，指示浏览器是否在线（即是否可以访问网络）。
    console.log(navigator.onLine); // 输出 true 或 false

  3. navigator对象的方法
  - javaEnabled()：返回一个布尔值，指示用户的浏览器是否启用了Java。
    console.log(navigator.javaEnabled()); // 输出 true 或 false

  4. 使用示例
  以下是一个简单的示例，展示如何使用navigator对象获取浏览器信息：
  function displayBrowserInfo() {
    console.log("浏览器名称: " + navigator.appName);
    console.log("浏览器版本: " + navigator.appVersion);
    console.log("用户代理: " + navigator.userAgent);
    console.log("操作系统: " + navigator.platform);
    console.log("首选语言: " + navigator.language);
    console.log("在线状态: " + (navigator.onLine ? "在线" : "离线"));
  }
  displayBrowserInfo();
  
  总结
  navigator对象在浏览器对象模型中提供了重要的功能，使开发者能够获取关于浏览器和用户环境的信息。通过使用navigator对象的属性和方法，开发者可以实现浏览器检测、功能支持检测以及根据用户环境做出相应的调整。
   -->
</head>
<body>

  <script>
    // 1. navigator对象的属性
    // navigator对象包含有关浏览器的信息，例如浏览器名称、版本、用户代理字符串等。
    // - appName：返回浏览器的名称。
    console.log(navigator.appName); // 输出浏览器名称
    // - appVersion：返回浏览器的版本。
    console.log(navigator.appVersion); // 输出浏览器版本
    // - userAgent：返回浏览器的用户代理字符串。
    console.log(navigator.userAgent); // 输出用户代理字符串
    // - platform：返回浏览器的操作系统平台。
    console.log(navigator.platform); // 输出操作系统平台
    // - language：返回浏览器的首选语言。
    console.log(navigator.language); // 输出首选语言
    // - onLine：返回一个布尔值，指示浏览器是否在线。
    console.log(navigator.onLine); // 输出在线状态

    // 2. navigator对象的方法
    // navigator对象包含一些方法，用于检测浏览器功能和支持。
    // - javaEnabled()：返回一个布尔值，指示浏览器是否启用了Java。
    console.log(navigator.javaEnabled()); // 输出Java启用状态
    // - taintEnabled()：返回一个布尔值，指示浏览器是否启用了数据污点。（已废弃）

    // 3. 使用navigator对象进行浏览器检测
    // 开发者可以使用navigator对象的属性和方法来检测浏览器的类型和版本，从而实现浏览器特定的功能。
    function displayBrowserInfo() {
      console.log("浏览器名称: " + navigator.appName); // 输出浏览器名称
      console.log("浏览器版本: " + navigator.appVersion); // 输出浏览器版本
      console.log("用户代理字符串: " + navigator.userAgent); // 输出用户代理字符串
      console.log("操作系统平台: " + navigator.platform); // 输出操作系统平台
      console.log("首选语言: " + navigator.language); // 输出首选语言
      console.log("在线状态: " + navigator.onLine); // 输出在线状态
      console.log("Java启用状态: " + navigator.javaEnabled()); // 输出Java启用状态
    }
    displayBrowserInfo(); // 调用函数显示浏览器信息
  </script>
  
</body>
</html>